import os
import pandas as pd
from sklearn.preprocessing import OrdinalEncoder


# 定义数据预处理函数
def data_preprocess(data_path):
    # 读取数据
    df = pd.read_csv(data_path, encoding='gbk')

    # 处理缺失值
    df.fillna(0, inplace=True)

    # 删除重复行
    df.drop_duplicates(inplace=True)

    # 去除冗余数据列
    df.drop(['EmployeeNumber', '是否满18', 'StandardHours'], axis=1, inplace=True)

    # 将类别型数据转换为数值型数据
    #   利用OrdinalEncoder将类别型数据转换为数值型数据
    categorical_cols = df.select_dtypes(include=['object']).columns
    if not categorical_cols.empty:
        encoder = OrdinalEncoder()
        df[categorical_cols] = encoder.fit_transform(df[categorical_cols])

    # 返回处理后的数据
    return df


if __name__ == '__main__':
    df = data_preprocess('../data/train_translate.csv')
    df.info()
    # print(data.head())
    print(df['加班'])  # 0: 不加班，1: 加班
    print(df['部门'].value_counts())  # 1:研发；2:销售；3:人力
    print(df['出差频率'].value_counts())  # 0：None；1：Rarely；2：Frequently
    print(df['性别'].value_counts())  # 0: Female；1: Male
    print(df['工作岗位'].value_counts())  # 0：医疗保健；1：人力；2：实验室技术员；3：经理；4：制造总监；5：研究主任；6；研究科学家；7：销售执行；8：销售代表
    print(df['婚姻状况'].value_counts())  # 0：离异；1：已婚；2：未婚
